/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package proy1sistdistribuidos.interfaz;


import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import proy1sistdistribuidos.modelo.AdministradorJXTA;
import proy1sistdistribuidos.modelo.NodoRemoto;

/**
 *
 * @author alvar-go@uniandes.edu.co
 */
public class PanelBusqueda extends JPanel implements ActionListener, Observer{

    private final static String[] ENCABEZADOS = {"Nombre", "Dirección IP"};

    private final static String BUSCAR = "Bsucar Nodos en Red";

    private JTable tabla;

    private DefaultTableModel modelo;

    private JButton btBuscar;

    private InterfazEjemploJXTA principal;

    public PanelBusqueda(InterfazEjemploJXTA interfaz) {
        setLayout( new BorderLayout());
        setBorder( new TitledBorder("nodos"));
        principal = interfaz;

        modelo = new DefaultTableModel(ENCABEZADOS, 0);
        tabla = new JTable();
        tabla.setModel(modelo);

        JScrollPane scroll = new JScrollPane(tabla);
        scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        add(scroll, BorderLayout.CENTER);

        btBuscar = new JButton(BUSCAR);
        btBuscar.setActionCommand(BUSCAR);
        btBuscar.addActionListener(this);
        add(btBuscar, BorderLayout.SOUTH);
    }


    public void actionPerformed(ActionEvent e) {
       String comando = e.getActionCommand();
       if( comando.equals(BUSCAR)){
           principal.buscarNodos();
       }
    }

    public void update(Observable o, Object ob) {
        if( o instanceof AdministradorJXTA){
            ArrayList<NodoRemoto> lista = (ArrayList<NodoRemoto>)ob;
            modelo = new DefaultTableModel(ENCABEZADOS, 0);
            String[] fila;
            for(NodoRemoto n: lista){
                fila = new String[2];
                fila[0] = n.getNombreNodo();
                fila[1] = n.getDireccionIP();
                modelo.addRow(fila);
            }
            tabla.setModel(modelo);
        }
    }


}
